package com.aiwiown.snackmq.common.protocol;

import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.ToString;

import java.io.Serializable;

/**
 * 代表一个主题的特定分区，是集群元数据管理的基本单位。
 * 必须正确实现 equals 和 hashCode 以便作为 Map 的键。
 */
@Getter
@AllArgsConstructor
@EqualsAndHashCode
@ToString
public class TopicPartition implements Serializable {

    private static final long serialVersionUID = 4927604779817517829L;
    /**
     * 主题名称，用于标识消息的主题。
     */
    private final String topic;

    /**
     * 分区ID，用于进一步细化主题，提高并行处理能力。
     */
    private final int partitionId;
}
